	/**
	 * Array添加remove方法
	 * @param val
	 */
  	Array.prototype.remove = function(val) {
         var index = this.indexOf(val);
         if (index > -1) {
             this.splice(index, 1);
         }
    };
    
    /**
     * nodeTpl模板公用方法,在元素里面添加
     * @param template 模板id
     * @param data 渲染数据
     * @param target 目标容器
     */
    function renderHtml(template,data,target){
		nodetpl.render(template,data,function(result){
			target.html(result);
		}); 
	}
    
    /**
     * nodeTpl模板公用方法,在元素的后面
     * @param template 模板id
     * @param data 渲染数据
     * @param target 目标容器
     */
    function renderAfter(template,data,target){
		nodetpl.render(template,data,function(result){
			target.after(result);
		}); 
	}
    
    
    /**
     * 查询省市区县
     * @param areacode
     * @param callback
     */
    function queryCityCode(areacode,callback){
		$.ajax({
			url:"../member/regionLevel.htm",
			data :{"areacode" : areacode},
			type : 'post',
			cache : false,
			dataType : 'json',
			success:function(data) {
				callback(data);
			}
		});
	}
    
    /**
     *  对Date的扩展，将 Date 转化为指定格式的String
     * @param fmt
     * @returns
     */
    Date.prototype.format = function (fmt) { 
        var o = {
            "M+": this.getMonth() + 1, //月份 
            "d+": this.getDate(), //日 
            "H+": this.getHours(), //小时 
            "m+": this.getMinutes(), //分 
            "s+": this.getSeconds(), //秒 
            "q+": Math.floor((this.getMonth() + 3) / 3), //季度 
            "S": this.getMilliseconds() //毫秒 
        };
        if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)
        if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
        return fmt;
    }

    /**
     * 兼容ie下不支持placeholder属性问题
     */
    if(!placeholderSupport()){   // 判断浏览器是否支持 placeholder
        $('[placeholder]').focus(function() {
            var input = $(this);
            if (input.val() == input.attr('placeholder')) {
                input.val('');
                input.removeClass('placeholder');
            }
        }).blur(function() {
            var input = $(this);
            if (input.val() == '' || input.val() == input.attr('placeholder')) {
                input.addClass('placeholder');
                input.val(input.attr('placeholder'));
            }
        }).blur();
    };
    
    function placeholderSupport() {
        return 'placeholder' in document.createElement('input');
    }
    
    /**
     * 遮罩层js
     */
    var layerIndex = {
    		
    		// 打开
    		open:function(){
    			layer.open({
    				  type: 1,
    				  title: false,
    				  closeBtn: 0
    				});
    			layer.load(0, {shade: false});
    		},
    		
    		close:function(){
    			var layerObj = $("div[times]");
    			$.each(layerObj, function(){
    				var i = $(this).attr('times');
    				layer.close(i);
    			});
    		}
    }
    
    /*
	 * 功能：生成一个GUID码，其中GUID以14个以下的日期时间及18个以上的16进制随机数组成，GUID存在一定的重复概率，但重复概率极低，理论上重复概率为每10ms有1/(16^18)，即16的18次方分之1，重复概率低至可忽略不计
	 * 免责声明：此代码为作者学习专用，如在使用者在使用过程中因代码问题造成的损失，与作者没有任何关系
	 * 日期：2014年9月4日
	 * 作者：wyc
	 */
	function GUID() {
	  this.date = new Date();
	 
	  /* 判断是否初始化过，如果初始化过以下代码，则以下代码将不再执行，实际中只执行一次 */
	  if (typeof this.newGUID != 'function') {
	     
	    /* 生成GUID码 */
	    GUID.prototype.newGUID = function() {
	      this.date = new Date();
	      var guidStr = '';
	        sexadecimalDate = this.hexadecimal(this.getGUIDDate(), 16);
	        sexadecimalTime = this.hexadecimal(this.getGUIDTime(), 16);
	      for (var i = 0; i < 9; i++) {
	        guidStr += Math.floor(Math.random()*16).toString(16);
	      }
	      guidStr += sexadecimalDate;
	      guidStr += sexadecimalTime;
	      while(guidStr.length < 32) {
	        guidStr += Math.floor(Math.random()*16).toString(16);
	      }
	      return this.formatGUID(guidStr);
	    }
	 
	    /*
	     * 功能：获取当前日期的GUID格式，即8位数的日期：19700101
	     * 返回值：返回GUID日期格式的字条串
	     */
	    GUID.prototype.getGUIDDate = function() {
	      return this.date.getFullYear() + this.addZero(this.date.getMonth() + 1) + this.addZero(this.date.getDay());
	    }
	 
	    /*
	     * 功能：获取当前时间的GUID格式，即8位数的时间，包括毫秒，毫秒为2位数：12300933
	     * 返回值：返回GUID日期格式的字条串
	     */
	    GUID.prototype.getGUIDTime = function() {
	      return this.addZero(this.date.getHours()) + this.addZero(this.date.getMinutes()) + this.addZero(this.date.getSeconds()) + this.addZero( parseInt(this.date.getMilliseconds() / 10 ));
	    }
	 
	    /*
	    * 功能: 为一位数的正整数前面添加0，如果是可以转成非NaN数字的字符串也可以实现
	     * 参数: 参数表示准备再前面添加0的数字或可以转换成数字的字符串
	     * 返回值: 如果符合条件，返回添加0后的字条串类型，否则返回自身的字符串
	     */
	    GUID.prototype.addZero = function(num) {
	      if (Number(num).toString() != 'NaN' && num >= 0 && num < 10) {
	        return '0' + Math.floor(num);
	      } else {
	        return num.toString();
	      }
	    }
	 
	    /* 
	     * 功能：将y进制的数值，转换为x进制的数值
	     * 参数：第1个参数表示欲转换的数值；第2个参数表示欲转换的进制；第3个参数可选，表示当前的进制数，如不写则为10
	     * 返回值：返回转换后的字符串
	     */
	    GUID.prototype.hexadecimal = function(num, x, y) {
	      if (y != undefined) {
	        return parseInt(num.toString(), y).toString(x);
	      } else {
	        return parseInt(num.toString()).toString(x);
	      }
	    }
	 
	    /*
	     * 功能：格式化32位的字符串为GUID模式的字符串
	     * 参数：第1个参数表示32位的字符串
	     * 返回值：标准GUID格式的字符串
	     */
	    GUID.prototype.formatGUID = function(guidStr) {
	      var str1 = guidStr.slice(0, 8) + '-',
	        str2 = guidStr.slice(8, 12) + '-',
	        str3 = guidStr.slice(12, 16) + '-',
	        str4 = guidStr.slice(16, 20) + '-',
	        str5 = guidStr.slice(20);
	      return str1 + str2 + str3 + str4 + str5;
	    }
	  }
	}